Comunicación de datos. IP, ARP, subredes, reenvío de paquetes, construcción de tablas de ruteo (página 2)
13
Formato del paquete ARP
Tablas ARP
Por cada interfaz del Router se construye una tabla ARP (Address Resolution Protocol), la cuál contiene información que asocia una dirección hardware (Ethernet MAC) con una determinada dirección IP.
(Gp:) Interface eth0
Tablas de Ruteo
Red de destino: Red de destino del datagram.
D/I: indica si el datagram debe será enviado a su dirección de destino o a un router intermedio.
Dir. router: dirección del router a través del cual se accederá a la red destino.
Interface: salida física (p.ej. LAN Ethernet) por la cual se debe enviar el datagram.
(Gp:) Tabla de ruteo Router Y
Direcciones IP – Ejemplo
(Gp:) eth0
(Gp:) eth0
(Gp:) eth0
(Gp:) eth1
(Gp:) sl0
(Gp:) eth0
(Gp:) eth0
(Gp:) eth0
(Gp:) eth1
(Gp:) eth0
(Gp:) sl0
(Gp:) RED 202.2.2.0
(Gp:) RED 202.2.4.0
(Gp:) RED 202.2.3.0
(Gp:) 202.2.4.2
(Gp:) 202.2.4.1
(Gp:) 202.2.3.2
(Gp:) 202.2.3.4
(Gp:) 202.2.3.3
(Gp:) 202.2.3.1
(Gp:) 202.2.2.3
(Gp:) 202.2.2.2
(Gp:) 202.2.2.1
(Gp:) 202.2.9.1
(Gp:) 202.2.9.2
(Gp:) INTERNET
(Gp:) HOST A
(Gp:) HOST B
(Gp:) HOST C
(Gp:) HOST D
(Gp:) HOST E
(Gp:) ROUT. X
(Gp:) ROUT. Y
(Gp:) ROUTER Y
(Gp:) eth0
(Gp:) eth1
Máscara de subred
La máscara de red es un número con el formato de una dirección IP que nos sirve para distinguir cuando una máquina determinada pertenece a una subred.
En formato binario todas las máscaras de red tienen los "1" agrupados a la izquierda y los "0" a la derecha.
Ejemplo: 11111111 11111111 11111111 00000000
255 255 255 0
Para obtener a que red pertenece un equipo con una dirección IP dada debo realizar la operación lógica AND (bit a bit) entre esta y la máscara correspondiente.
Ejemplo:
150.214.141.32 10010110.1101010.10001101.00100000
255.255.255.0 11111111.1111111.11111111.00000000
____________________________________________________
150.214.141.0 10010110.1101010.10001101.00000000
Subredes – Introducción
Cuando una red se vuelve muy grande, conviene dividirla en subredes lógicas.
Algunos bits de la parte de host se "pasan" a la parte de red, quedando la dirección divida en Red-Subred-Host
Sirve para establecer una estructura jerárquica y poder administrar la red de manera más manejable
Se utiliza un parámetro de 32 bits (máscara) para determinar dónde está la frontera entre red y host
Subredes – Ejemplo
Supongamos que queremos dividir la red 200.3.25.0 en 8 subredes
Red Original
Red Subdividida
Red (200.3.25)
Máscara de 24 bits
11111111 . 11111111 . 11111111 . 00000000
24 bits 8 bits
Red (200.3.25)
SR
Máscara de 27 bits
11111111 . 11111111 . 11111111 . 111 00000
24 bits 3 bits 5 bits
Host
Host
Subredes – Ejemplo (cont)
La máscara de subred para este caso es 255.255.255.224. Las subredes resultantes de la red 200.3.25.0/27 son:
Subredes – Ejemplo (cont)
(Gp:) eth0
(Gp:) eth0
(Gp:) eth0
(Gp:) eth1
(Gp:) sl0
(Gp:) eth0
(Gp:) eth0
(Gp:) eth0
(Gp:) eth1
(Gp:) eth0
(Gp:) sl0
(Gp:) RED 202.2.2.0/29
(Gp:) RED 202.2.2.16/29
(Gp:) RED 202.2.2.8/29
(Gp:) 202.2.2.18
(Gp:) 202.2.2.17
(Gp:) 202.2.2.10
(Gp:) 202.2.2.12
(Gp:) 202.2.2.11
(Gp:) 202.2.2.9
(Gp:) 202.2.2.3
(Gp:) 202.2.2.2
(Gp:) 202.2.2.1
(Gp:) 202.2.2.25
(Gp:) 202.2.2.26
(Gp:) INTERNET
(Gp:) HOST A
(Gp:) HOST B
(Gp:) HOST C
(Gp:) HOST D
(Gp:) HOST E
(Gp:) ROUT. X
(Gp:) ROUT. Y
Reenvío de Paquetes
Función correspondiente al nivel IP
Para un datagrama debe decidirse, en base a su dirección de destino, hacia qué equipo enviarlo
La decisión se toma en base a tablas de ruteo
Un equipo que sólo funcione como host no reenvía datagramas
(Gp:) TCP , UDP
(Gp:) IP
(Gp:) Tabla de ruteo
(Gp:) eth0
(Gp:) eth1
(Gp:) datagram entrante
(Gp:) Salida
(Gp:) Tabla ARP
(Gp:) Tabla ARP
Envío de datagrama:
Acceder a tabla ARP de interface en tabla de ruteo
Obtener dirección de hardware correspondiente a dir. IP
Encapsular el dg original en frame de la red, con dirección
de hardware destino igual a la accedida en la tabla
(Gp:) Hay_matching s=T
Matching=entrada de la tabla
(Gp:) Existe default
route
(Gp:) Error, destino no alcanzable
(Gp:) Fin
(Gp:) Extraer dirección de destino
del datagrem entrante=DD
(Gp:) Si
(Gp:) Acceder a próxima entrada
en tabla de ruteo
(Gp:) (T(máscara) AND DD )
==
T(red)
(Gp:) Inicializar búsqueda en tabla
Hay_matchings = F
(Gp:) Es el matching de mayor
longitud?
(Gp:) No
(Gp:) Fin tabla de ruteo
(Gp:) Si
(Gp:) No
(Gp:) No
(Gp:) Hay _matching
(Gp:) No
(Gp:) Si
(Gp:) DESTINO = default route
(Gp:) Si
(Gp:) No
(Gp:) DESTINO = Router de mayor
matching
(Gp:) Enviar a DESTINO
(Gp:) Si
(Gp:) ROUTER Y
Reenvío de Paquetes
(Gp:) eth0
(Gp:) eth0
(Gp:) eth0
(Gp:) eth1
(Gp:) sl0
(Gp:) eth0
(Gp:) eth0
(Gp:) eth0
(Gp:) eth1
(Gp:) eth0
(Gp:) sl0
(Gp:) RED 202.2.2.0
(Gp:) RED 202.2.4.0
(Gp:) RED 202.2.3.0
(Gp:) 202.2.4.2
(Gp:) 202.2.4.1
(Gp:) 202.2.3.2
(Gp:) 202.2.3.4
(Gp:) 202.2.3.3
(Gp:) 202.2.3.1
(Gp:) 202.2.2.3
(Gp:) 202.2.2.2
(Gp:) 202.2.2.1
(Gp:) 202.2.9.1
(Gp:) 202.2.9.2
(Gp:) INTERNET
(Gp:) HOST A
(Gp:) HOST B
(Gp:) HOST C
(Gp:) HOST D
(Gp:) HOST E
(Gp:) ROUT. X
(Gp:) ROUT. Y
(Gp:) ROUTER Y
(Gp:) eth0
(Gp:) eth1
Comandos en Linux
arp
Permite visualizar y manejar las entradas a la tabla ARP cuyo objetivo es manejar las mapeos entre las direcciones MAC e IP
Principales usos y Sintaxis
arp -a para obtener todas las entrada ARP de la tabla
arp -d nombre_de_la_máquina para suprimir una entrada de la tabla
arp -s nombre_de_la_máquina dirección_mac para añadir una nueva entrada en la tabla
Comandos en Linux
ifconfig
Permite configurar una interfaz de red
ifconfig [interfaz] [dirección] [opciones]
Sin argumentos detalla el estado de todas las interfaces del equipo
Con el nombre de una interfaz muestra el estado de esa interfaz solamente
interfaz: es el nombre de la interfaz con la que se va a operar. Ej: eth0
dirección: es la dirección IP que se asigna a dicha interfaz. Ej: 192.168.0.2
Comandos en Linux
ifconfig [interfaz] [dirección] [opciones]
opciones:
up Marca la interfaz como disponible para que sea usada por la capa IP
Ej: ifconfig eth0 up
down Marca la interfaz como inaccesible a la capa IP
Ej: ifconfig eth0 down
netmask dirección Esto asigna una máscara de subred a una interfaz.
Ej: ifconfig eth0 netmask 255.255.255.0
broadcast dirección Si se da un argumento de dirección, establece la dirección de emisión broadcast de la interfaz
Ej: ifconfig eth0 broadcast 192.168.1.255
Comandos en Linux
ping
Es una herramienta de red que sirve para comprobar entre redes si llegamos a un host remoto.
ping [opciones] destino
donde el destino es la dirección IP o la dirección DNS del host al que queremos comprobar que llegamos desde nuestra red. Ej: 192.168.0.2
Opciones:
-R: Muestra la traza del paquete que es enviado y recibido. De esta forma, se pueden observar los distintos saltos que atraviesa el paquete hasta llegar al destino.
Muchas más…
29
IpRoute2
Iproute2 es un paquete de utilidades desarrollado por Alexey Kuznetsov. Este paquete es un conjunto de herramientas muy potentes para administrar interfaces de red y conexiones en sistemas Linux.
Reemplaza completamente las funcionalidades presentes en ifconfig, route, y arp y las extiende llegando a tener características similares a las provistas por dispositivos exclusivamente dedicados al ruteo y control de tráfico.
Este paquete lo podemos encontrar incluido en distribuciones de Debian y RedHat con versiones del núcleo mayores a 2.2.
30
IpRoute2
ip [ OPTIONS ] OBJECT [ COMMAND [ ARGUMENTS ]]
ip route
Add
Syntaxis:
# ip route add < Net/IP>/< Mask> via < Gateway> dev < IntX>
Ejemplo:
Agregar un camino hacia la red 10.0.0/24 por la puerta de enlace 192.168.0.2
# ip route add 10.0.0.0/24 via 192.168.0.2
Agregar un camino por por la puerta de enlace 192.168.1.1 a través de la interfaz eth0
# ip route add default via 192.168.1.1 dev eth0
Show
# ip route show20.20.20.2/24 via 192.168.1.1 dev eth0default via 192.168.1.1 dev eth0
31
IpRoute2
List
# ip route list 10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.1 10.0.1.0/24 dev eth1 proto kernel scope link src 10.0.1.1 10.0.0.0/8 dev eth0 proto kernel scope link src 10.0.0.1 127.0.0.0/8 dev lo scope link
# ip route list match 10.0.1.2 10.0.1.0/24 dev eth1 proto kernel scope link src 10.0.1.110.0.0.0/8 dev eth0 proto kernel scope link src 10.0.0.1
# ip route list match 10.0.1.2/8:10.0.0.0/8 dev eth0 proto kernel scope link src 10.0.0.1
Delete
Elimina una entrada de la tabla de ruteo
Replace
Crea o cambia una entrada de la tabla de ruteo
Change
Cambia una entrada de la tabla de ruteo
Página anterior | Volver al principio del trabajo | Página siguiente |